package com.wicket.okrcomponent.integration.dto;

import com.wicket.okrcomponent.common.dto.BaseDto;
import com.wicket.okrcomponent.integration.dto.MessageLocationNumDto;
import com.wicket.okrcomponent.integration.dto.RealTimeMonitoringBehaviorInstructionDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc AddMessageNumComReqDto
 * @使用场景
 */
@Data
public class AddMessageNumComReqDto extends BaseDto implements Serializable {

  /**
   * mqtt消息主题 CHAT_MESSAGE:沟通消息 MESSAGE_CHANNEL:消息通道 IMPORTANT_MESSAGE:强提醒消息 MESSAGE_NUM:消息位置数量
   */
  @NotNull(message = "mqtt消息主题不能为空")
  @ApiModelProperty("mqtt消息主题")
  private String messageTopic;

  /**
   * webSocket后端调用地址
   */
  @NotNull(message = "webSocket后端调用地址不能为空")
  @ApiModelProperty("webSocket后端调用地址")
  private String websocketAddress;

  /**
   * webSocket后端调用端口
   */
  @NotNull(message = "webSocket后端调用端口不能为空")
  @ApiModelProperty("webSocket后端调用端口")
  private String websocketPort;

  /**
   * webSocket后端调用协议
   */
  @NotNull(message = "webSocket后端调用协议不能为空")
  @ApiModelProperty("webSocket后端调用协议")
  private String websocketAgreement;

  /**
   * websocket服务访问账号
   */
  @NotNull(message = "websocket服务访问账号不能为空")
  @ApiModelProperty("websocket服务访问账号")
  private String websocketUserId;

  /**
   * websocket服务访问密码
   */
  @NotNull(message = "websocket服务访问密码不能为空")
  @ApiModelProperty("websocket服务访问密码")
  private String websocketUserPassword;

  @ApiModelProperty("消息位置数量列表")
  private List<MessageLocationNumDto> messageLocationNumList = new ArrayList<>();

  @ApiModelProperty("实时监听行为指令列表")
  private List<RealTimeMonitoringBehaviorInstructionDto> realTimeMonitoringBehaviorInstructionList = new ArrayList<>();

}
